Rework <=, <, and >#871
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the core comparator tests for <=, <, and > to align with the recent >= test refactors, primarily standardizing arity-1 checks, adding equality coverage, and removing out-of-contract negative cases.
Changes:
- Refactors arity-1 tests to use
aretables for<=,<, and>. - Adds additional equality test cases (e.g., equal rationals; repeated equal values in apply-forms).
- Removes negative tests around non-numeric comparisons that are outside the functions’ intended contracts.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| test/clojure/core_test/lt_eq.cljc | Refactors arity-1 <= tests and adjusts negative/equality coverage. |
| test/clojure/core_test/lt.cljc | Refactors arity-1 < tests; adds equality and repeated-value coverage; trims negative cases. |
| test/clojure/core_test/gt.cljc | Refactors arity-1 > tests; adds equality coverage; trims negative cases (but introduces a wrong-operator assertion). |
Comments suppressed due to low confidence (1)
test/clojure/core_test/gt.cljc:94
- The negative-test header comment mentions CLR implicit conversions for strings/chars to numbers, but the string/keyword comparison cases were removed in this PR. Consider updating the comment to match what the tests now cover (or reintroducing coverage if that behavior is still important to document).
;; `>` only compares numbers, except in ClojureScript (really
;; JavaScript under the hood) where comparisons are just a bit
;; of a mess. CLR also has some implicit conversions for strings
;; and characters to numbers.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| (is (< :foo)) | ||
| (is (< nil))) | ||
| (are [x] (= true (< x)) | ||
| ;; Doesn't matter what the argument is, `<` return `true` for |
| (is (> :foo)) | ||
| (is (> nil))) | ||
| (are [x] (= true (> x)) | ||
| ;; Doesn't matter what the argument is, `>` return `true` for |
| (is (= true (apply > (reverse (range 10))))) | ||
| (is (= false (apply > -1 (reverse (range 10)))))) | ||
| (is (= false (apply > -1 (reverse (range 10))))) | ||
| (is (= false (apply < (repeat 5 1))))) |
Member
|
Another real bug caught by copilot. 💪 |
Collaborator
Author
Nice! |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Member
|
Thanks, Dave! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There were some tweaks that occurred for the
>=PR during reviews. This PR updates<=,<, and>with similar changes. There is no associated issue for this work. Basically, across each of the three files:arefor testing arity 1.